The present invention generally relates to block programming, and more particularly to block programming in which the blocks in a program are selectively executed based on changes in the input values of the blocks.
Block programming is well known in the control industry. In contrast to the traditional control programs using sequential language to write lines of codes, block programming is done generally through drawings. For those who are in the control industry, such as building managers or building operations system dealers who install control systems, it is generally more intuitive and easier to draw the control strategies pictorially into blocks that perform various functions, rather than writing it in some programming language such as C or BASIC, for example. These blocks are compiled into a file of records that describe the operations or functions of the blocks, and an interpreter or execution engine interprets the records. Generally, each block in the program represents a subroutine or algorithm that performs various specified tasks. These blocks are connected together through input and output lines or connectors to form a complete program.
Typically, the control systems that employ block programs execute all the blocks within the program each time the program is run. In a block program for operating a heating/ventilation/air conditioning (HVAC) system, for example, there could be from about 1,000 to 2,000 blocks, each of which must be executed every run of the program, which could be every few hundred milliseconds to give the appearance of smooth real-time operation to a human observer. Performing these executions in the required time is not a problem if a relatively fast computer is used. However, such computers are expensive and add to the cost of the control system.